k均值算法
k-means聚类又称k均值聚类。
给定N个数据点 {
xn→∈RM,n=1,⋯,N} ,M是数据点的维度。现在希望把数据点聚类成K个簇。
算法:
(1)初始化:在给定的N个样本中随机选择K个作为初始聚类中心
(2)更新划分:对每个数据点,计算其到各个聚类中心的距离,并把它归到距离最近的类
(3)更新聚类中心:计算各个类簇中数据点在每个维度上的均值,将求得的均值点作为新的聚类中心
(4)判断是否收敛:如果聚类中心的改变不超过预先设置的阈值或者损失的改变不超过设定的阈值,那么认为收敛;否则,转到步骤(2)
从优化角度看待k均值算法
给定N个数据点 {
xn→∈RM,n=1,⋯,N} ,M是数据点的维度。现在希望根据空间位置把数据点聚类成K个簇,使得损失函数
J(C,U)=ΣnΣkcnkDistance(xn→−uk→)
最小。其中,聚类矩阵 C∈RN∗K ,(n,k)位置上的元素